package source.Objetos {
    import flash.geom.Rectangle;
    import net.flashpunk.Entity;
    import net.flashpunk.graphics.Image;
    import net.flashpunk.utils.Input;
    import net.flashpunk.graphics.Graphiclist;
    import source.Assets;
    import source.Global;
    import source.Control.Juego;

	public class Savepoint extends Entity {
		public var idPantalla:int; //la id de la pantalla del savepoint donde se guardó la última vez
		public var sprReposo:Image = new Image(Assets.OBJ_SAVEPOINT, new Rectangle(0, 0, 25, 50));
		public var sprSalvar:Image = new Image(Assets.OBJ_SAVEPOINT, new Rectangle(25, 0, 25, 50));
        
		//[Embed(source = '../bin/gs.xml', mimeType = 'application/octet-stream')] public static const GAMESAVES: Class;
		
		public function Savepoint(x:int, y:int, _idPantalla:int) {
			super(x, y);
            
			idPantalla = _idPantalla;
			
			graphic = new Graphiclist(sprReposo, sprSalvar);
            sprReposo.visible = true;
            sprSalvar.visible = false;
			setHitbox(25, 40, 0, -10);
		}
		
		override public function update():void {			
			//Si colisionamos con el pj y pulsamos Salvar...
			if (collideWith(Global.pj, x, y) && Input.pressed("Salvar") && (sprSalvar.alpha == 1)) {
				Global.savepointDestino = idPantalla; //guardamos en Global las instrucciones de adónde ir cuando muramos
                sprSalvar.alpha -= 0.01;
                sprSalvar.visible = true;
                Juego.guardarPartida();
			}
			//Nota: collideWith()es más rápido que collide()
			
			//Efecto:
			if ((sprSalvar.alpha > 0) && (sprSalvar.alpha < 1))
                sprSalvar.alpha -= 0.01;
			else if (sprSalvar.alpha == 0) {
				sprSalvar.alpha = 1;
                sprSalvar.visible = false;
			}
		}
    }
}













//